package com.sky.mapper;

import com.sky.entity.Orders;
import org.apache.ibatis.annotations.Mapper;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Mapper
public interface OrderMapper {

    /**
     * 插入订单
     * @param orders 订单实体类
     */
    void insertOrder(Orders orders);

    /**
     * 修改订单表
     * @param orders 订单实体类
     */
    void updateOrder(Orders orders);

    /**
     * 根据订单号码和用户Id查询订单
     * @param outTradeNo 订单号
     * @param userId 用户id
     * @return 订单实体类
     */
    Orders getOrderByNumberAndUserId(String outTradeNo, Long userId);

    /**
     * 根据订单状态和订单时间查询订单集合
     * @param status 订单状态
     * @param time 订单时间
     * @return 订单集合
     */
    List<Orders> getOrderByStatusAndTimeLT(Integer status, LocalDateTime time);

    /**
     *
     * @param orderId 订单号
     * @return 订单
     */
    Orders getOrderById(Long orderId);

    /**
     * 返回指定时间的营业额
     * @param timeMap 指定时间内的开始时间和结束时间,以及订单状态
     * @return 总金额
     */
    Double getSumByTimeMap(Map<String, Object> timeMap);
}
